import { createRouter, createWebHistory } from 'vue-router';
import { ElMessage } from 'element-plus'; // 引入 Element Plus 提示组件

const routes = [
  // 默认路由，未登录时跳转到登录页
  {
    path: '/',
    redirect: '/login', // 默认跳转到登录页
  },
  // 登录路由
  {
    path: '/login',
    name: 'login',
    component: () => import('../views/LoginView.vue'),
  },
  // 注册路由
  {
    path: '/register',
    name: 'register',
    component: () => import('../views/Register.vue'),
  },
  // 用户视图，所有权限的用户都可以访问
  {
    path: '/user',
    name: 'user',
    component: () => import('../views/system/UserView.vue'),
    meta: { requiresAuth: true }, // 需要登录
  },
  // 系统页面路由，只有管理员权限为 4 的用户才能访问
  {
    path: '/system',
    component: () => import('../views/mainView.vue'),
    redirect: '/system/home',
    meta: { requiresAuth: true },
    children: [
      {
        path: 'home',
        name: 'system-home',
        component: () => import('../views/system/HomeView.vue'),
        meta: { roles: ['0', '1', '2', '3'] }, // 权限为0-3的用户可以访问
      },
      {
        path: 'user',
        name: 'system-user',
        component: () => import('../views/system/UserView.vue'),
        meta: { roles: ['0', '1', '2', '3', '4'] },//所有用户可以访问
      },
      {
        path: 'appUser',
        name: 'system-appUser',
        component: () => import('../views/system/Account/AppuserView.vue'),
        meta: { roles: ['0', '1', '2', '3'] }, // 权限为0-3的用户可以访问
      },
      {
        path: 'authourity',
        name: 'system-authority',
        component: () => import('../views/system/Account/AuthorityView.vue'),
        meta: { roles: ['0', '1', '2'] }, // 权限为0-2的用户可以访问
      },
        // 广告管理
        {
          path: 'advertisement',
          name: 'system-advertisement',
          component: () => import('../views/system/Advertisement/AdvertisementView.vue'),
          meta: { breadcrumb: ['广告与增值服务', '广告管理'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 增值服务
        {
          path: 'promotion',
          name: 'system-promotion',
          component: () => import('../views/system/Advertisement/PromotionView.vue'),
          meta: { breadcrumb: ['广告与增值服务', '增值服务'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 帖子审核
        {
          path: 'post',
          name: 'system-post',
          component: () => import('../views/system/Content/PostView.vue'),
          meta: { breadcrumb: ['内容审核与过滤', '帖子审核'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 推荐逻辑优化
        {
          path: 'recommend',
          name: 'system-recommend',
          component: () => import('../views/system/Content/RecommendView.vue'),
          meta: { breadcrumb: ['内容审核与过滤', '推荐逻辑优化'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 服务审核
        {
          path: 'service',
          name: 'system-service',
          component: () => import('../views/system/Content/ServiceView.vue'),
          meta: { breadcrumb: ['内容审核与过滤', '服务审核'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 用户反馈
        {
          path: 'feedback',
          name: 'system-feedback',
          component: () => import('../views/system/Feedback/FeedbackView.vue'),
          meta: { breadcrumb: ['用户反馈与举报', '用户反馈'], roles: ['0', '1', '2'] }, // 权限 0-2 可以访问
        },
        // 用户举报
        {
          path: 'report',
          name: 'system-report',
          component: () => import('../views/system/Feedback/ReportView.vue'),
          meta: { breadcrumb: ['用户反馈与举报', '用户举报'], roles: ['0', '1', '2'] }, // 权限 0-2 可以访问
        },
        // 资质审核
        {
          path: 'qualification',
          name: 'system-qualification',
          component: () => import('../views/system/Qualification/QualificationView.vue'),
          meta: { breadcrumb: ['资质审核与身份管理', '资质审核'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 旅行社管理
        {
          path: 'agency',
          name: 'system-agency',
          component: () => import('../views/system/Qualification/AgencyView.vue'),
          meta: { breadcrumb: ['资质审核与身份管理', '旅行社管理'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 定制官管理
        {
          path: 'servicedesigner',
          name: 'system-servicedesigner',
          component: () => import('../views/system/Qualification/ServicedesignerView.vue'),
          meta: { breadcrumb: ['资质审核与身份管理', '定制官管理'], roles: ['0', '1', '2', '3', '4'] },//所有用户可以访问
        },
        // 运营数据
        {
          path: 'operationaldata',
          name: 'system-operationaldata',
          component: () => import('../views/system/Statistic/OperationaldataView.vue'),
          meta: { breadcrumb: ['数据统计与分析', '运营数据'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
        // 用户行为
        {
          path: 'userbehavior',
          name: 'system-userbehavior',
          component: () => import('../views/system/Statistic/UserbehaviorView.vue'),
          meta: { breadcrumb: ['数据统计与分析', '用户行为'], roles: ['0', '1'] }, // 权限 0-1 可以访问
        },
      ],
    },
    // 404 页面路由
    {
      path: '/:pathMatch(.*)*',
      name: 'not-found',
      component: () => import('../views/NotFoundView.vue'),
    },
  ];

  const router = createRouter({
    history: createWebHistory(import.meta.env.BASE_URL),
    routes,
  });

// 添加全局导航守卫
router.beforeEach((to, from, next) => {
  const loggedIn = localStorage.getItem('loggedIn');  // 检查是否登录
  const authorityLevel = localStorage.getItem('authorityLevel');  // 获取权限等级

  console.log('当前登录状态:', loggedIn);
  console.log('当前权限等级:', authorityLevel);

  // 判断是否需要登录
  if (to.meta.requiresAuth && !loggedIn) {
    ElMessage.error('请先登录');
    return next('/login');  // 跳转到登录页
  }

  // 如果用户已登录
  if (loggedIn) {
    const level = parseInt(authorityLevel); // 获取用户权限等级
    const roles = to.meta.roles || []; // 当前路由允许访问的权限等级

    console.log('当前路由的权限要求:', roles);

    // 判断用户权限是否符合要求
    if (roles.length > 0 && !roles.includes(String(level))) {
      ElMessage.error('您没有权限访问该页面');
      return next(false);  // 不执行跳转
    }

    // 如果权限是4且用户试图访问其他页面，跳转到 UserView
    if (level === 4 && to.path !== '/system/user') {
      console.log('权限为 4，但尝试访问其他页面，没有权限');
      ElMessage.error('您没有权限访问该页面');
      return next(false);  // 不执行跳转
    } 
    
  }

  // 允许访问页面
  next();
});




export default router;
